---
+# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
env:
es6: true
extends: 'eslint:recommended'
# allow: [^vfunc_, ^on_, _instance_init]
comma-dangle:
- error
- - always-multiline
+ - arrays: always-multiline
+ objects: always-multiline
+ functions: never
comma-spacing:
- error
- before: false
no-prototype-builtins: 'off'
no-restricted-properties:
- error
+ - object: Lang
+ property: copyProperties
+ message: Use Object.assign()
- object: Lang
property: bind
message: Use arrow notation or Function.prototype.bind()
- object: Lang
property: Class
message: Use ES6 classes
- - object: imports
- property: mainloop
- message: Use GLib main loops and timeouts
no-restricted-syntax:
- error
- selector: >-
BlockStatement[body.length=1]
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
message: _init() that only calls super._init() is unnecessary
+ - selector: BinaryExpression[operator="instanceof"][right.name="Array"]
+ message: Use Array.isArray()
no-return-assign: error
no-return-await: error
no-self-compare: error
object-shorthand: error
operator-assignment: error
operator-linebreak: error
+ padded-blocks:
+ - error
+ - never
# These may be a bit controversial, we can try them out and enable them later
# prefer-const: error
# prefer-destructuring: error
print: readonly
printerr: readonly
parserOptions:
- ecmaVersion: 2019
+ ecmaVersion: 2020